package com.zhl.operator;

public class OperatorDemo5 {
    public static void main(String[] args) {
        //目标 掌握逻辑运算符的使用
        //需求：要求手机必须满足大于等于 6.95尺寸 ， 且内存要大于等于 8GB
        double size = 6.8;
        int memory = 16;
        //前后结果都是 true 才是True
        boolean flag = size >= 6.95 & memory >= 8;
        System.out.println(flag);   //Flase

        //前后结果有一个是 true 就是True
        boolean flag2 = size >= 6.95 | memory >= 8;
        System.out.println(flag2);  //True

        // ! 取反运算符
        System.out.println(!false); //True
        System.out.println(!true);  //False
        System.out.println(!(2>1)); //False

        // ^ 异或运算符  前后结果不同时为true , 前后结果相同为false
        System.out.println(true ^ true); //False
        System.out.println(true ^ false); //True
        System.out.println(false ^ true); //True

        System.out.println("-------------------------");

        // && 左边为false 右边不执行 结果为false
        int i = 10;
        int j = 20;
        System.out.println(i > 100 && ++j >99);  //右边不执行 j = 20
        System.out.println(j);
        System.out.println(i<100 && ++j>99);  //右边执行 j = 21
        System.out.println(j);

        // || 左边为true 右边不执行 结果为true
        int k = 10;
        int l = 20;
        System.out.println(k < 100 || ++l >99);  //右边不执行 l = 20
        System.out.println(l);
        System.out.println(k>100 || ++l>99);  //右边执行 l = 21

    }
}
